按照脆弱性扫描的方法将扫描技术分为哪些类型
按照脆弱性扫描的方法将扫描技术分为以下类型:
Ping扫描:它主要检测目标系统是否运行,有简单ICMP响应请求、NON-ECHO ICMP请求、广播ICMP ECHO请求等类型。
TCP连接扫描:这是最常见的TCP扫描,利用系统提供connect()调用,对每一个感兴趣的目标主机的端口进行正常连接(如完全三次握手连接),如果此时端口处于监听状态,那么connect()就能成功,否则该端口不能使用,即没有提供服务。采用这个技术不需要任何权限,即系统中的任何用户或实体都可以使用这个调用,它的不足之处在于容易被发现和过滤掉。
TCP SYN扫描:这是一种半开式扫描,这种扫描方法不能完成完整的TCP三次握手过程,它只是发送一个SYN请求包,如果返回一个SYN/ACK包,说明端口处于监听状态;如果返回一个RST包,则说明端口处于关闭状态。这种扫描方法的一个好处在于不会在目标系统上留下记录,即不容易被发现;其不足在于必须是特权用户的权限才能进行调用。
TCP反向Ident扫描:这是指在Ident协议中,即使一个连接不是由这个进程开始的,它也可以允许看到TCP连接的任意进程拥有者的用户。一般来说,Ident服务是由某个网络连接的服务器方来证明客户的身份,所以是由连续的服务器向客户主机的端口反方向建立连接进行通信。
IP分段扫描:这是指不直接发送TCP探测数据包,而是将数据包划分为几个较小的IP段,这样就将一个TCP头分成几个数据包,从而使过滤器很难探测到。
UDP ICMP端口不能到达扫描:这种扫描方法与前面讲到的几种方法的不同之处在于它使用的是UDP,由于这个协议比较简单,反而使得扫描变得比较困难。这是由于打开的端口对扫描探测并不返回一个确认消息,而处于关闭的端口也不能返回一个错误数据包。幸运的是,许多主机向未打开的UDP端口发送数据包时,会返回一个ICMP-PORT-UNREACH错误,这样就能够发现哪些端口是关闭的。
UDP Recvfrom()和write():这是指一般非特权用户不能直接读到ICMP错误信息,当ICMP报文到达时,Linux能够间接告知用户,对处于关闭状态的端口进行writ()调用。在非阻塞的UDP Socket上,如果收到ICMP报文,Recvfro()返回ECONNREFUSED;如果没有收到ICMP报文,Recvfro()返回EAGAIN。
秘密扫描技术:这是指利用FIN标识来探测端口。它没有利用到TCP三次握手的任何一个部分,不被日志记录。当FIN标识发送给一个处于监听状态的端口时,数据包被丢弃,不返回RST;当FIN标识发送给一个处于关闭状态的端口时,接收方将会把接收到的数据包丢弃,同时返回RST。